package control;

import dao.TransferenciaDAO;
import entidad.Producto;
import entidad.Transferencia;
import frontera.VentanaPrincipal;
import java.util.ArrayList;
import java.util.Date;

public class ControlTransferencia {

    private TransferenciaDAO dao;
    
    public ControlTransferencia () {
        dao = new TransferenciaDAO();
    }
    
    public boolean validarTransferencia (Transferencia trans) {
        if(!verificarCantidad(trans.getCantidad())){
            return false;
        }
        return true;
    }

    public boolean verificarCantidad (int cantidad) {
        return cantidad>=0;
    }
    
    public ArrayList<Transferencia> buscar(Date inicio, Date fin, boolean carga, boolean descarga, boolean devolucion){
        return dao.buscar(inicio, fin, carga, descarga, devolucion);
    }
    
    public void realizarTransferencia(Transferencia transferencia){       
        Producto p = transferencia.getProducto();
        
        if(transferencia.getMotivo().equals(Transferencia.carga)){
            p.setCantidad(p.getCantidad() + transferencia.getCantidad());
            p.getLotes().add(transferencia.getLote());
            VentanaPrincipal.controlLote.agregar(transferencia.getLote());
        } else{
            p.setCantidad(p.getCantidad() - transferencia.getCantidad());
        }
        
        VentanaPrincipal.controlProducto.modificar(p);
        VentanaPrincipal.controlLote.modificar(transferencia.getLote());
        dao.crear(transferencia);
    }
}